﻿using System;
using System.Collections.Generic;
using System.Web.UI;
using System.Web.UI.WebControls;
using Sebra.Academico.InfraEstrutura.Core.Helper;
using Sebra.Academico.Trilhas.BP;
using Sebrae.Academico.Trilhas.Dominio.Classes;

namespace Sebrae.Academico.Trilhas.WebForms.Cadastros.FormaAprendizagem
{
    public partial class ListarFormaAprendizagem : System.Web.UI.Page
    {
        private ManterTrilhaFormaAprendizagem manterTrilhaFormaAprendizagem = null;

        protected void Page_Load(object sender, EventArgs e) { }

        protected void dgvFormaAprendizagem_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName.Equals("delete"))
            {
                manterTrilhaFormaAprendizagem = new ManterTrilhaFormaAprendizagem();
                int idTrilhaFormaAprendizagem = int.Parse(e.CommandArgument.ToString());
                manterTrilhaFormaAprendizagem.ExcluirTrilhaFormaAprendizagem(new TrilhaFormaAprendizagem() { ID = idTrilhaFormaAprendizagem });
                Response.Redirect("ListarFormaAprendizagem.aspx");
            }
            else if (e.CommandName.Equals("editar"))
            {
                int idTrilhaFormaAprendizagem = int.Parse(e.CommandArgument.ToString());
                Session.Add("TrilhaFormaAprendizagemEdit", idTrilhaFormaAprendizagem);
                Response.Redirect("EdicaoFormaAprendizagem.aspx", false);
            }
        }

        protected void btnNovo_Click(object sender, EventArgs e)
        {
            Response.Redirect("EdicaoFormaAprendizagem.aspx");
        }

        private TrilhaFormaAprendizagem ObterObjetoTrilhaFormaAprendizagem()
        {
            TrilhaFormaAprendizagem trilhaFormaAprendizagem = new TrilhaFormaAprendizagem();

            if (!string.IsNullOrWhiteSpace(this.txtNome.Text))
                trilhaFormaAprendizagem.Nome = this.txtNome.Text.Trim();

            return trilhaFormaAprendizagem;
        }

        protected void btnBuscar_Click(object sender, EventArgs e)
        {
            if (Page.IsValid)
            {
                try
                {
                    TrilhaFormaAprendizagem trilhaFormaAprendizagem = ObterObjetoTrilhaFormaAprendizagem();
                    manterTrilhaFormaAprendizagem = new ManterTrilhaFormaAprendizagem();
                    IList<TrilhaFormaAprendizagem> ListaTrilhaFormaAprendizagem = manterTrilhaFormaAprendizagem.ObterTrilhaFormaAprendizagemPorFiltro(trilhaFormaAprendizagem);
                    WebFormHelper.PreencherGrid(ListaTrilhaFormaAprendizagem, this.dgvFormaAprendizagem);
                }
                catch (Exception ex)
                {
                    //TODO -> Exibir mensagem de Erro em um alert ? -> Precisamos definir isso
                    throw ex;
                }
            }
        }
    }
}